/**
 * 2012-7-5
 * jqsl2012@163.com
 */
package com.cyy.common;


import com.cyy.admin.entity.SysMenuEntity;
import com.cyy.admin.entity.SysSystemsettingEntity;
import com.cyy.constants.MenuType;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;


/**
 * author Chenyuyi
 * date 2021/12/10  10:23
 * 页面上显示的菜单项，每一个MenuItem对应一个节点
 */
@Data
public class MenuItem {
	private String id;// 0：根节点，否则是子节点
	private String pid;// 菜单项的父亲节点
	private String url;// 菜单的URL地址
	private String target = "rightFrame";// 打开的目标
	private String name;// 菜单名称
	private boolean open = false;// 是否展开
	private boolean checked;// true:勾选
	private List<MenuItem> children;// 子节点
	private MenuType type = MenuType.module;// module：模块 ,page：页面 ,button：功能
	private String icon;// 节点图标
	
	/**
	 *	指定菜单的功能类型
	 * @param menu
	 */
	public void setMenuType(SysMenuEntity menu) {
		if(menu!=null && StringUtils.isNotEmpty(menu.getType())){
			if(menu.getType().equals("module")){
				this.setType(MenuType.module);
			}else if(menu.getType().equals("page")){
				this.setType(MenuType.page);
			}else if(menu.getType().equals("button")){
				this.setType(MenuType.button);
			}
            if(this.getType().equals(MenuType.page)){
				this.setIcon("/tcshop/resource/images/letter.gif");
			}else if(this.getType().equals(MenuType.button)){
				this.setIcon("/tcshop/resource/images/letter.gif");
			}
		}
	}

	/**
	 * 判断是否是非按钮的功能
	 * 
	 * @return
	 */
	public boolean isButton() {
		if (this.type != null && this.type.equals(MenuType.button)) {
			return true;
		}
		return false;
	}

	public boolean isRootMenu() {
		return "0".equals(pid);
	}

	public void addClild(MenuItem item) {
		if(children == null){
			children = new ArrayList<MenuItem>();
		}
		children.add(item);
	}

	public List<MenuItem> getChildren() {
		return children;
	}

	public MenuItem(String name, List<MenuItem> children) {
		super();
		this.name = name;
		this.children = children;
	}

	public MenuItem() {
		super();
	}


}
